'''
函数的嵌套
函数体内存在调用另一个函数的情况
'''
def fun1():
    print('我叫王大锤，今年28岁')

def fun2():
    print('我的爱好是吃饭睡觉打豆豆')

def fun3():
    print('我的梦想是人生巅峰')

def fun_a():
    fun1()
    fun2()
    fun3()
fun_a()

def fun3():
    print("进入第三层梦境")
    print("得到 宝藏")
    print("第三层梦境结束")

def fun2():
    print("进入第二层梦境")
    fun3()
    print("第二层梦境结束")

def fun1():
    print("进入第一层梦境")
    fun2()
    print("第一层梦境结束")

# 进入第一层梦境
fun1()

def my_fun1(name,age):
    print(f'我喜欢的人是{name},今年{age}了')

def my_fun2(name,age):
    my_fun1(name,age)

my_fun2('王大锤',18)

# 传递返回值
def add(a,b):
    num = a+b
    return num

def fun_a(a,b):
    n = add(a,b)
    print(f'计算的结果为{n}')
fun_a(1,2)

# login(name)
# 功能是打印'xx登录成功
def login(name):
    print(f'{name}登录成功')
login('王大锤')
# order(goods)
# 功能是打印‘下单xx成功’
def order(goods):
    print(f'下单{goods}成功')
order('张大锤')
# buy(name,goods)
# 在这个函数内调用login order
def buy(name,goods):
    login(name)
    order(goods)
# 调用buy传入函数‘王大锤’ ‘手机’
buy('王大锤','手机')

# 扩展
# 可变参数
def fun_b(*args):
    print(args)
#传入的值就称为实参，参数就是形参
# 可以传入任意一个参数
# 通过实参传入多个参数，转换为形参，形参的类型为元组
fun_b(1,2,3,4,5)

def fun_b(*a):
    b = 0
    for c in a:
        b += c
    print(b)


